package com.ct.learnging.chapter3.connector.http;

import java.io.IOException;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;

public class HttpConnector implements Runnable {

	  boolean stopped;
	  private String scheme = "http";

	  public String getScheme() {
	    return scheme;
	  }

	  public void run() {
	    ServerSocket serverSocket = null;
	    int port = 8080;
	    try {
	      serverSocket =  new ServerSocket(port, 1, InetAddress.getByName("127.0.0.1"));
	    }
	    catch (IOException e) {
	      e.printStackTrace();
	      System.exit(1);
	    }
	    while (!stopped) {
	      // Accept the next incoming connection from the server socket
	      Socket socket = null;
	      try {
	        socket = serverSocket.accept();
	      }
	      catch (Exception e) {
	        continue;
	      }
	      // Hand this socket off to an HttpProcessor
	      HttpProcessor processor = new HttpProcessor(this);
	      processor.process(socket);
	    }
	  }

	  public void start() {
	    Thread thread = new Thread(this);
	    thread.start();
	  }
	}
